The present invention relates to the control of operating systems sent by a server computer system to a client computer system in response to a request by the client computer system.
A computer or computer system, when turned on, must be prepared for operation by loading an operating system. In the normal operation of a single computer system, when a user issues a boot command to the computer, the computer responds to the boot command by attempting to retrieve the operating system files from the computer systems memory. Configuration data files are also needed to configure the specific machine with the hardware parameters necessary for the specific hardware configuration. These files also contain information needed to initialize videos, printers, and peripherals associated with the particular machine. For example, the files would include CONFIG.SYS in the MS-DOS operating system, available from Microsoft Corporation.
Computers or computer systems can be connected in a network normally consisting of a client workstation, a server and a central network. In a system where the computer""s storage is maintained when the power is turned off, the operating system can be stored in the computer itself. In a system where the computer has only storage that is lost when the power is turned off, the computer cannot retrieve the boot information from within the computer itself. In that case, the client sends a request for the operating system files via the network to the server acting as a boot server. Even when the client workstation has non-volatile storage capability, it is advantageous to boot from the server because memory space is saved in the workstation computer. As operating system and application programs expand to provide new and greater capabilities, booting from a server can be highly advantageous.
Remote booting of a client workstation from a server is known in the art. U.S. Pat. No. 5,842,011 discloses a method for booting a local workstation from a server where the network is established by sending the operating system to the workstation when the power is turned on at the local workstation. The local workstation then boots from the transferred operating system which is now in its memory. U.S. Pat. No. 5,557,210 discloses a method for booting the local workstation where the operating system is transferred to the local workstation by the server in response to the first interruption produced by a terminal after it is turned on.
Several methods of remote booting exist in the marketplace. One is called Remote Initial Program Load (RIPL). RIPL is the process of loading an operating system onto a workstation from a remote location. The RIPL protocol was co-developed by 3Com, Microsoft, and IBM. It is used today with IBM OS/2 Warp Server, DEC Pathworks, and Windows NT. Two other commonly used Remote IPL protocols are a Novell NCP (NetWare Core Protocol), and BOOT-P, an IEEE standard, used with UNIX and TCP/IP networks.
RIPL is achieved using a combination of hardware and software. The requesting device, called the requester or workstation, starts up by asking the loading device to send it a bootstrap program. The loading device is another computer that has a hard disk and is called the RIPL server or file server. The RIPL server uses a loader program to send the bootstrap program to the workstation. Once the workstation receives the bootstrap program, it is then equipped to request an operating system, which in turn can request and use application programs. The software implementations differ between vendors, but theoretically, they all perform similar functions and go through a similar process. The client workstation requires a special Read Only Memory (ROM) installed on its (Local Area Network) LAN adapter or Network Interface Card (NIC). The special ROM is known generally as a remote boot ROM, but two specific examples of remote boot chips are the RIPL chip, which supports ANSI/IEEE standard 802.2, and the Preboot Execution Environment (PXE) chip, which is used in the Transmission Control Protocol/Internet Protocol (TCP/IP) environment.
While the process has many advantages for booting a computer that has volatile storage, such as a network computer, the computer is required to have a remote boot ROM on the LAN adapter or Network Interface Card (NIC). The remote boot ROM requirement does not allow any user interaction with the remote boot process. Application Ser. No. 09/329,457, now U.S. Pat. No. 6,463,530, discloses a remote boot process that does not require a remote boot ROM on the LAN adapter or NIC. Existing boot manager configurations allow different partitions to be booted based on the user""s choice from a menu at machine start time. The selection criteria for the menu is hard coded on the local machine hard drive. Therefore, changes to the boot manager configuration must be done locally at the machine and normally require a reboot post configuration, a very tedious process in a large enterprise environment involving thousands of machines.
Therefore, a need exists for a remotely controlled boot manager which would allow the administrator to change the boot manager configuration remotely, from a server, and have the workstation pick up those changes every boot. Administrators could then configure items such as what to boot, timeout values, and defaults from a server rather than at the local machine.
Thus, a need exists for an apparatus and method in a LAN/WAN environment for remote administration of workstation boot choices.
The invention meeting the needs identified above is a Remotely Controlled Boot Manager which provides an apparatus and method for the administrator to make changes to boot manager configuration from a server without any direct involvement at the local workstation. The Remotely Controlled Boot Manager comprises a set of programs at the workstation and a a menu control program at the server.
A set of programs at the workstation allows a remote boot and interaction with a menu control program on the server. Instructions from a Basic Input Output System (BIOS) ROM are executed to load a Boot Code Loader (BCL) from a nonvolatile, read/write memory, such as a diskette or hard disk. The BCL executes to load a Remote Control Program (RCP) from the diskette, and the RCP executes to load a message program, a protocol manager and/or device drivers from the diskette without loading an operating system. The message program and/or device drivers communicate with a menu control program called RIPLMENU in the network server. The program will interface with an NDIS compliant Network Interface Card (NIC) to send out a discovery frame. At this point the workstation seeks menu specific information. The discovery frame will be intercepted by RIPLMENU installed on the server which will be running and listening for the request. Once the second program intercepts the request it will send back the boot manager menu information for that workstation. The workstation will present the menu to the user on the display. Once a choice is made by the user the corresponding boot attempt is made. If the boot device is unavailable and a time-out value and prioritized list is supplied the process will continue to attempt to boot for the amount of time expressed by the value. If time-out expires the next bootable option is attempted. The process continues until a successful boot occurs. If no boot occurs the boot menu is redisplayed. If no time out value is supplied, the boot manager menu is displayed immediately after a boot failure. The menu information is passed to the client by way of this process and this gives the administrator the ability to change the options remotely. Once the administrator makes a change in RIPLMENU, the change takes effect upon the next boot of that client. If setup properly throughout the environment, the workstation can be moved from one location to another and receive the same or different boot manager information (i.e. laptops). The administrator can arbitrarily make changes to the choices presented to the user or can change the default boot (in the case where the user isn""t presented a choice). If desired, the administrator could choose, rather than the user, which system is booted. The invention accomplishes this by combining an existing system for remote booting without ROM hardware with a menu control program at the server which is queried automatically by the workstation at startup.